Changes for correct pgrp behavior; approach suggested by Bob
authorJim Blandy <jimb@redhat.com>
Thu, 17 Jun 1993 04:58:27 +0000 (04:58 +0000)
committerJim Blandy <jimb@redhat.com>
Thu, 17 Jun 1993 04:58:27 +0000 (04:58 +0000)
Glickstein <bobg@zindigo.z-code.com>:
* m/iris4d.h (LIB_STANDARD): Do list -lbsd here.
* s/irix4-0.h (getpgrp, setpgrp): #define these to call BSDgetpgrp
and BSDsetpgrp.
(GETPGRP_NO_ARG): Don't #define this.
* emacs.c (main): Don't test GETPGRP_NO_ARG.
* sysdep.c (sys_suspend): Don't test GETPGRP_NO_ARG.

* config.h.in (HAVE_CLOSEDIR): Add an #undef for autoconf to
change.
* sysdep.c (closedir): Only define this if autoconf can't find
HAVE_CLOSEDIR.  If we're running under solaris (defined (sun) &&
defined (USG5_4)), then don't free the buffer separately.

src/sysdep.c

index 2bbdf2640f2ba145e055de7b09aeff37ef96f16d..5d0d4802a0f019aa5253188102ec77f58a8cee21 100644 (file)
@@ -571,11 +571,7 @@ sys_suspend ()
 #else
 #ifdef SIGTSTP
 
-#ifdef GETPGRP_NO_ARG
-  EMACS_KILLPG (getpgrp (), SIGTSTP);
-#else
   EMACS_KILLPG (getpgrp (0), SIGTSTP);
-#endif
 
 #else /* No SIGTSTP */
 #ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */
@@ -2921,20 +2917,22 @@ char *sys_siglist[NSIG + 1] =
 
 #include <dirent.h>
 
-#ifndef AIX
+#ifndef HAVE_CLOSEDIR
 int
 closedir (dirp)
      register DIR *dirp;              /* stream from opendir */
 {
   sys_close (dirp->dd_fd);
 
-  /* Some systems allocate the buffer and the DIR all in one block.
-     Why in the world are we freeing this ourselves anyway?  */
-  if (dirp->dd_buf != (char *)(dirp + 1))
-    xfree ((char *) dirp->dd_buf); /* directory block defined in <dirent.h> */
+  /* Some systems (like Solaris) allocate the buffer and the DIR all
+     in one block.  Why in the world are we freeing this ourselves
+     anyway?  */
+#if ! (defined (sun) && defined (USG5_4))
+  xfree ((char *) dirp->dd_buf); /* directory block defined in <dirent.h> */
+#endif
   xfree ((char *) dirp);
 }
-#endif /* not AIX */
+#endif /* not HAVE_CLOSEDIR */
 #endif /* SYSV_SYSTEM_DIR */
 
 #ifdef NONSYSTEM_DIR_LIBRARY